// app.js
const config = require('utils/config.js')
const util = require('utils/utils.js')
const api = require('/api/index.js')
App({
  api,
  util, // 公共utils
  config, // 项目配置项
  primaryColor: config.themeVal.colorPrimary,
  loginBack: null, // 点击登录的回调函数
  globalData: {
    loginStatus: false, // 当前登录态
    navBarHeight: '', // 小程序navbar高度
  },
  onLaunch(options) {
    console.log('app-onLaunch', options);
    this.updataMiniApp()
    this.checkLogin_current().then(()=>{ this.mustGoLoginPage() })
  },
  onHide () {
    console.log('app--onHide');
  },
  onShow(options) {

  },
  // 本地存储和登录态相关全部清除
  clearAllStorageAndLogin () {
    wx.clearStorage({
      success: () => {
        this.globalData.loginStatus = false
      }
    })
  },
  // 页面侧 检查是否已登录
  checkLogin_page(callBack) {
    if (this.globalData.loginStatus) {
      callBack(true);
      return false;
    }
    let _this = this
    wx.showModal({
      title: '提示',
      confirmText: '去登录', // 用户主动选择登录
      cancelText: '取消', // 不登录，退出小程序
      content: '查看订单需要登录后才能使用哦~ 您可以点击「去登录」，或者点击「取消」退出当前小程序',
      success(res) {
        if (res.confirm) {
          _this.loginBack = callBack;
          wx.navigateTo({
            url: '/pages/login/login'
          })
        }
      }
    })
  },
  // 更新小程序
  updataMiniApp () {
    const updateManager = wx.getUpdateManager()

    updateManager.onCheckForUpdate(function (res) {
      // 请求完新版本信息的回调
      console.log('是否有新版本：', res.hasUpdate)
    })
    updateManager.onUpdateReady(function () {
      wx.showModal({
        title: '更新提示',
        content: '新版本已经准备好，是否重启应用？',
        success(res) {
          if (res.confirm) {
            // 新的版本已经下载好，调用 applyUpdate 应用新版本并重启
            updateManager.applyUpdate()
          }
        }
      })
    })

    updateManager.onUpdateFailed(function () {
      // 新版本下载失败
      wx.showModal({
        title: '已经有新版本了哟~',
        content: '新版本已经上线啦~，请您删除当前小程序，重新搜索打开哟~'
      })
    })

  },
  // 当前js侧，检查是否已经登录
  checkLogin_current () {
    return new Promise(resolve => {
      const getToken = wx.getStorageSync('token')
      this.globalData.loginStatus = getToken ? true : false
      resolve()
    })
  },
  // 未登录就强制进入登录页
  mustGoLoginPage () {
    if (!this.globalData.loginStatus) {
      wx.reLaunch({
        url: `/pages/login/login`
      })
    }
  },
})
